Interface
- java.lang.Iterable
- java.util.Collection
- java.util.List
对象间有顺序,允许重复 - java.util.Set
对象间无顺序,不允许重复
- java.util.List
- java.util.Collection
- java.util.Map
- java.util.SortedMap
- java.util.SortedMap
Class
- java.util.AbstractCollection
- java.util.AbstractList
- java.util.AbstractSequentialList
- java.util.LinkedList
- java.util.LinkedList
- java.util.ArrayList
- java.util.Vector
- java.Stack
- java.Stack
- java.util.AbstractSequentialList
- java.util.AbstractSet
- java.util.HashSet
- java.LinkedHashSet
- java.LinkedHashSet
- java.util.TreeSet
- java.util.HashSet
- java.util.AbstractList
- java.util.AbstractMap
- java.util.HashMap
- java.util.LinkedHashMap
- java.util.LinkedHashMap
- java.util.TreeMap
- java.util.HashMap
- java.util.Dictionary
- java.util.HashTable
- java.util.HashTable
1 正则表达式 字符串
1.1 字符串常量 字符串变量
String 字符串常量 不可变,所以线程安全
StringBuffer 字符串变量 线程安全
StringBuilder 字符串变量 线程不安全
1.2 正则表达式
模式 | 解释 |
---|---|
() | 组 |
* | 任意次 |
+ | 一次或多次 |
? | 零次或一次 |
\d{n} | 数字匹配n次 |
\d{n,} | 数字至少匹配n次 |
\d{n,m} | 数字匹配n-m次 |
. | 除\r\n之外的任意字符 |
[\s\S] | 任意字符,包括\r\n |
x|y | 匹配x或y |
[xy] | 匹配x或y |
[^xy] | 不匹配x或y |
[A-Za-z0-9] | 匹配所有字母和数字 |
\d | 数字 |
\D | 非 \d |
\s | 不可见字符(空格,tab,换行) |
\S | 非 \s |
\w | 包括下划线的任何字符 |
\W | 非 \w |
1.3 正则匹配 字符串的基本函数
|
|
1.4 String变为int的三种方法
|
|
2 基本类型 包装类型
基本类型 | 包装类 | 字符串str -> 基本类型 | 包装类 -> 基本类型 | |
---|---|---|---|---|
Xxx包装类.parseXxx(str) | Xxx包装类对象.xxxValue() | |||
整型 | byte | Byte | ||
short | Short | |||
int | Integer | Integer.parseInt(str) | New Integer(s1).intValue() | |
long | Long | |||
浮点型 | float | Float | ||
double | Double | |||
char型 | char | Character | ||
boolean型 | boolean | Boolean | Boolean.getBoolean(str) |
3 ArraySort
java中已经有写好的排序算法,只需调用Arrays.sort()即可。
4 List
4.1 ArrayList LinkedList的基本函数
|
|
4.2 Vector ArrayList
Vector | ArrayList | |
---|---|---|
synchronized否 | 同步 | 非同步 |
5 Set
5.1 HashSet LinkedHashSet TreeSet
HashSet | LinkedHashSet | TreeSet | |
---|---|---|---|
实现 | hash表 | hash表+双链表 | 红黑树 |
基本操作(add,remove,contains,size)时间复杂度 | O(1) | O(1) | O(log(n)) |
元素有序否 | 无序 | 插入序 | 升序 |
多线程同步否 | 不同步 | 不同步 | 不同步 |
允许插入null否 | 允许,但多次add(null),也只能放入一个null | 不允许 | 允许,但多次add(null),也只能放入一个null |
在每个覆盖了equals方法的类中,也必须覆盖hashCode方法。
hashcode在集合中会用到,将一个对象放入集合的流程:
- 判断该对象的hashcode与集合中的任意对象的hashcode是否相等
- 如果不等,放入该对象;如果相等,比较equals()是否相等
- 如果不等,放入该元素;如果相等,不放入集合
5.2 Set的基本函数
|
|
6 Map
6.1 HashMap LinkedHashMap TreeMap 的基本函数
|
|
6.2 HashMap Hashtable
HashMap | Hashtable | |
---|---|---|
synchronized 否 | 非同步 | 同步 |
允许nul否 | 允许 | 不允许 |
|
|
7 格式化
7.1 取2位小数
|
|
7.2 取整
|
|
8 java计时
|
|
9 随机数
|
|
10 Math类
|
|
Reference
- http://stackoverflow.com/questions/8962459/java-collections-keyset-vs-entryset-in-map
- http://stackoverflow.com/questions/1463284/hashset-vs-treeset
- http://www.cnblogs.com/Terry-greener/archive/2011/12/02/2271707.html
- http://blog.csdn.net/afgasdg/article/details/6889383
- http://www.importnew.com/8773.html
- http://www.programcreek.com/2013/03/hashset-vs-treeset-vs-linkedhashset/
- http://blog.csdn.net/rmn190/article/details/1492013
- http://www.cnblogs.com/interdrp/p/5004000.html